import Vue from 'vue'
import Vuex from 'vuex'
import {mutations} from './mutations'
import getters from './getters'
// 1、安装插件
Vue.use(Vuex)

// 2、创建对象
const store=new Vuex.Store({
    state:{
        cartList:[]
    },
    getters:getters,
    mutations:mutations,
    // {
        //mutations的作用是修改state中的状态，里面的每个方法尽可能单一，这里的方法有多个功能，放到action里面
        //修改变量在这里的方法,比较多方法的时候，封装成参数
        // addCart(state,payload){
        //     //计算数量，去掉重复的
        //     let oldProduct=null;
        //     // console.log("payload:",payload);
        //     for(let item in state.cartList){
        //         if(item.iid===payload.iid){
        //             oldProduct=item;
        //             break;
        //         }
        //     }
            // if(oldProduct){
            //     oldProduct.count+=1
            // }
          
        //     state.cartList.push(payload)
        // }
        // addCount(state,payload){
    //         payload.count++;
    //     },
    //     addToCart(state,payload){
    //         state.cartList.push(payload)
    //         console.log(state.cartList);
    //     }
    // },
    actions:{
        addCart(context,payload){
            //计算数量，去掉重复的  context调用参数
           //封装成promise
           return new Promise((resolve,reject)=>{
                // let oldProduct=null;
                // for(let item of context.state.cartList){
                //     console.log("item：",item);
                //     if(item.iid===payload.iid){
                //         oldProduct=item;
                //         break;
                //     }
                // }
                // 上面简写
                let oldProduct=context.state.cartList.find(item=> item.iid===payload.iid)
                if(oldProduct){
                    context.commit('addCount',oldProduct)
                    resolve("当前商品数量+1")
                }else{
                    // console.log('aaa2');
                    context.commit('addToCart',payload)
                    resolve("添加了新的商品")
                }
           })
          
          
        }
    }
})
// 3、挂载到Vue实例上
export default store